Quality of service management system for a communication network

ABSTRACT

A quality of service management system includes a rules engine that receives information associated with a communication path having an assigned quality of service (QoS) to be provided for a customer communication device, and identifies one or more network elements assigned to provide the communication path. Each network element having a plurality of queues configured to provide varying QoS levels relative to one another. For each of the network elements, the rules engine determines at least one queue that is configured to provide the communication path at the assigned quality of service, and transmits queue information associated with the determined queue to its respective network element, the network element conveying the communication path through the determined queue.

RELATED APPLICATIONS

This application claims priority under 35 U.S.C. §119 from U.S.provisional application No. 61/994,531 entitled “CLASS OF SERVICEMANAGEMENT SYSTEM FOR A COMMUNICATION NETWORK,” filed on May 16, 2014,the entire contents of which are fully incorporated by reference hereinfor all purposes.

TECHNICAL FIELD

Aspects of the present disclosure relate to communication networks and,in particular, to a quality of service management system for acommunication network.

BACKGROUND

Although traditional communication services have been typically limitedto voice communication, today's communication services have expanded toalso include data communication (e.g., Internet, e-mail messaging, etc.)and video communication services (e.g., multimedia messaging services(MMS), digital video broadcast services (DVB), etc.). Nevertheless, eachof these differing types of communication services have characteristicsthat vary widely from one another. For example, although data servicesoften require larger throughput rates than the traditional voicecommunication services, they can also handle relatively higher levels ofburstiness without adversely affecting overall quality of service.

There are numerous qualities of communication services that arecollectively referred to as a quality of service (QoS). The quality ofservice of any communication service generally refers to its overallperceived quality. In many cases it would be advantageous to scheduleand independently manage communication services, and particularly forthose communication services, such as voice, data, and videocommunication services having characteristics that vary widely from oneanother. It is with these issues in mind, among others, that variousaspects of the present disclosure were developed.

SUMMARY

According to one embodiment of the present disclosure, a quality ofservice management system includes a rules engine that receivesinformation associated with a communication path having an assignedquality of service (QoS) to be provided for a customer communicationdevice, and identifies one or more network elements assigned to providethe communication path. Each network element has a plurality of queuesthat are configured to provide varying QoS levels relative to oneanother. For each of the network elements, the rules engine determinesat least one queue that is configured to provide the communication pathat the assigned quality of service, and transmits queue informationassociated with the determined queue to its respective network element,the network element conveying the communication path through thedetermined queue.

According to another embodiment, a computer-based processing methodincludes receiving information associated with a communication path tobe provided for a customer communication device, and identifying one ormore network elements assigned to provide the communication path inwhich each network element includes multiple queues configured toprovide varying QoS levels relative to one another. The method alsoincludes, for each network element, determining at least one queue thatis configured to provide the communication path at the assigned qualityof service, and transmitting queue information associated with thedetermined queue to its respective network element such that the networkelement conveys the communication path through the determined queue.

According to yet another embodiment, code executable on a computingsystem is operable to perform receiving information associated with acommunication path to be provided for a customer communication device,and identifying one or more network elements assigned to provide thecommunication path in which each network element includes multiplequeues configured to provide varying QoS levels relative to one another.The code is further executable to, for each of the network elements,determine at least one queue that is configured to provide thecommunication path at the assigned quality of service, and transmitqueue information associated with the determined queue to its respectivenetwork element such that the network may convey the communication paththrough the determined queue.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, features and advantages of thedisclosure will be apparent from the following description of particularembodiments of the disclosure, as illustrated in the accompanyingdrawings in which like reference characters refer to the same componentsthroughout the different views. The drawings are not necessarily toscale, emphasis instead being placed upon illustrating the principles ofthe disclosure.

FIG. 1A is a block diagram of an example communication network thatimplements a quality of service (QoS) management system according to oneaspect of the present disclosure.

FIG. 1B depicts an example network element according to one aspect ofthe present disclosure.

FIG. 1C depicts an example data source according to one aspect of thepresent disclosure.

FIG. 2 depicts a diagram of an example communication service providercomputing system according to one aspect of the present disclosure.

FIG. 3 is a flowchart depicting an example process that may be performedby the QoS management system according to one aspect of the presentdisclosure.

FIG. 4 illustrates an example computer system according to oneembodiment of the present disclosure.

DETAILED DESCRIPTION

Aspects of a quality of service (QoS) management system described hereinprovide for management of a communication network to providecommunication services that are consistently applied for each ofdiffering types of communication paths through the network. That is, theQoS management system independently manages each of multiple networkelements to convey a communication path according to its assigned QoSsuch that one of multiple levels of service is maintained throughout thecommunication network. To this end, embodiments of the QoS managementsystem determine mapping information for each network element of thecommunication network according to an assigned QoS level for eachcommunication path and distributes the mapping information to eachnetwork element. Additionally, the QoS management system provides ascheduling mechanism to ensure that the communication paths through eachnetwork element are prioritized and processed in an efficient andorderly manner. Other embodiments include a policing mechanism to ensurethat maximum throughput rates of each communication path do not exceedterms of service (ToS) agreements previously established between thecommunication network provider and customers for whom the communicationpaths are provided.

FIGS. 1A through 1C depict an example quality of service managementsystem 100 that may be used to manage a communication network 102according to aspects of the disclosure. Although the particularcommunication network 102 shown herein is a simplified example, itshould be understood that an actual network deploying the conceptsdescribed herein may have numerous network elements (NEs) and customerdevices using the network.

The communication network 102 has multiple NEs 104 that provide acommunication path 106 between a first customer communication device 108a and a second customer communication device 108 b. The system 100includes a communication service provider (CSP) computing system 110 orother computing device or system that includes a rules engine 112 and adata source 114. When a communication path 106 is established throughthe communication network 102, the rules engine 112 generatesprovisioning information and distributes the provisioning information toeach network element 104 such that an assigned quality of service (QoS)may be maintained for the communication path 106 at each network element104 along the communication path 106.

The communication network 102 may be any type that providescommunication services using one or more network elements 104. In oneembodiment, the communication network 102 is an Internet Protocol (IP)based communication network, such as a ‘tier 1’ communication networkthat provides varying types of communication services (e.g., voice,data, and video communication services, etc.).

An IP based communication network may include network elements 104, suchas packet switches or packet routers that route packets of thecommunication path 106 according to one or more routing tables stored inthe memory of each network element. Other types of network elements 104may include gateway devices each having a first interface thatcommunicates according to a first protocol, and a second interface thatcommunicates according to a second protocol. A typical gateway may havemany interfaces communicating over the same and/or different protocols.The gateway device may be, for example, an ingress network elementand/or egress network element that that receives packets from ortransmits packet to, respectively, a customer communication device.

Many currently implemented network elements used in IP basedcommunication networks include queuing and scheduling mechanisms forhandling multiple communication paths of different types. For example, aparticular network element may include a queuing mechanism that isconfigured to maintain a constant throughput rate required forvoice-based communication paths, while maintaining high overallthroughput rates for data-based communication paths that can toleratenon constant (e.g., bursty) throughput rates. Examples of queuingmechanisms include those conforming to one or more protocols, such as adifferentiated services code point (DSCP) protocol, an Internet protocol(IP) precedence protocol, and a QoS field of a 802.1Q formatted packetheader. Nevertheless, because IP based communication networks ofteninclude network elements 104 designed and constructed by differentvendors, the queuing and scheduling mechanism implemented in each maydiffer substantially from one another. Embodiments of the presentdisclosure provide a solution to this problem by using a rules engine112 that maps standardized quality of service (QoS) values into thoseunderstood by each network element 104 such that communication paths maybe established having a common QoS across some or all network elements104 that handle those communication paths. For example, the rules engine112 may store performance information about some or all NEs in thecommunication network such that, when a communication path isestablished, the rules engine 112 may assign queues to each NE handlingthat communication path such that the communication path's QoS may beconsistently maintained through the network. Additionally, tagging ofpackets may ensure that the QoS for all communication paths configuredin the network is consistently maintained.

The customer communication device may be any type that is configured tocommunicate with the communication network 102 using protocolsestablished for the communication network. For a communication networksuch as an IP based communication network, the customer communicationdevice 108 a communicates with another customer communication device 108b by transmitting and receiving IP based packets that are routed throughthe communication network 102 along the communication path 106. In oneembodiment, the customer communication device 108 a and/or customercommunication device 108 b marks each packet that it transmits to thecommunication network 102 with a tag indicating a quality of service(QoS) to be assigned to that communication path 106. In anotherembodiment, an ingress network element functioning as a gateway for acustomer communication device 108 a, 108 b marks each packet that ittransmits to the other network elements 104 in the communication network102 with a tag indicating a quality of service (QoS) to be assigned tothat communication path 106. For example, the tag may comprise athree-bit field of an Ethernet frame header conforming to the 802.1Qvirtual local area network (VLAN) protocol. Each customer communicationdevice 108 a and 108 b has one or more processors and executableinstructions stored in volatile and/or non-volatile memory forperforming the actions and/or steps described herein.

FIG. 1B depicts an example network element 104 according to one aspectof the quality of service management system 100. The network element 104includes a computing or processing device that includes one or moreprocessors 120 and memory 122 and is to receive data and/orcommunications from, and/or transmit data and/or communications to, theCSP computing system 110 via wireless, wired, and/or opticalcommunications.

The memory stores a communication path processing application 124 formanaging communication paths with the rules engine 112. For example, theapplication 124 may receive a configuration file 126 from the rulesengine 112, which is subsequently stored in the memory 122 and used toconfigure one or more parameters of the network element 104. Theconfiguration file 126 may include information about which queues 128are to be used, and how these queues 128 are to be implemented forensuring an appropriate QoS for each communication path 106. Onceconfigured, the application 124 reads incoming packets to determinetheir assigned QoS level, and using mapping information provided in theconfiguration file 126, assign packets to certain queues 128 accordingto the mapping information. The configuration file 126 may also includeinformation about scheduling of the queues 128 such that load balancingmay be maintained. In one embodiment, the configuration file 126 mayalso include information about whether its respective network element104 is to perform policing to ensure that policies (e.g., terms ofservice (ToS) agreements) associated with the communication path areenforced.

The data source 114 stores communication path routing information 130,customer business information 132, network element engineeringinformation 134, and communication network information 136. Thecommunication path routing information 130 stores information aboutcommunication paths established through the communication network 102.For example, the communication paths may be dedicated non-transientcommunication paths (e.g., statically assigned paths) or sessiondependent communication paths (e.g., dynamically assigned paths). Thededicated paths generally refer to communication paths that are notsetup prior to each communication session or torn down after thecommunication session is completed.

The customer business information 132 stores information about one ormore performance parameters to be associated with each communicationpath and may be, for example, based upon a contractual agreementestablished between the customer and customer service providerindicating what level of communication services are to be provided. Ingeneral, a contractual agreement between the CSP that manages the CSPcomputing system 110 and a customer of the communication networkspecifies what services are to be provided and any performance levelsassociated with these services. For example, the CSP may offer multipleservice plans that each provides differing combinations and levels ofcommunication services, such as voice communication services, videocommunication services, and/or data communication services, such asshort messaging services (SMS), multimedia messaging services (MMS), andthe like. Additionally, the service plans offered by the CSP may specifyvarying performance levels associated with each communication service,such as quality of service (QoS) levels, grade of service (GoS) levels,and/or terms of service (ToS) levels. For example, the customer businessinformation 132 may include information about a minimum and/orguaranteed level of throughput to be maintained by the communicationpath, and a maximum level of burstiness to be exhibited by thecommunication path.

The network element engineering information 134 stores information aboutparticular characteristics of each network element managed by the rulesengine 112. In one embodiment, characteristics may include what queues128 of each network element 104 are to be used and which queues 128 areto be mapped to corresponding levels of QoS established for thecommunication network 102. For example, although a particular networkelement 104 may have 64 queues available for use (e.g., DSCP queuemapping), the network element engineering information 134 may indicatethat only six (6) of those queues are to be used. Additionally, thenetwork element engineering information 134 may also indicate how thosesix queues are mapped to the QoS levels established for use in thecommunication network 102.

The communication network information 136 stores information about howpolicies of the rules engine 112 are to be applied for eachcommunication path 106. For example, the communication networkinformation 136 may store information about whether policing ofthroughput is to be applied to certain network elements in thecommunication network 102 or all network elements 104 in thecommunication network 102. Additionally, the communication networkinformation 136 may store information about whether QoS balancing is tobe applied to each network element 104. For example, the communicationnetwork information 136 may include information indicating that onlycertain network elements 104 are configured to be configured for QoSbalancing.

Although the data source 114 is shown as being located on, at, or withinthe CSP computing system 110, it is contemplated that the data source114 can be located remotely from the CSP computing system 110, such ason, at, or within the memory 124 of one or more network elements 104.

FIG. 2 is a block diagram depicting an example rules engine 112 executedon the CSP computing system 110. According to one aspect, the CSPcomputing system 110 includes a processing system 202 that includes oneor more processors or other processing devices. A processor is hardware.Examples of such a computing system include one or more servers,personal computers, mobile computers and/or other mobile devices, andother computing devices. The CSP computing system 110 may communicatewith the network elements 104 via wireless, wired, and/or opticalcommunications.

According to one aspect, the CSP computing system 110 includes acomputer readable media 204 on which the rules engine 112 and datasource 114 are stored. The rules engine 112 includes instructions ormodules that are executable by the processing system 202 to perform thefeatures of the QoS management system 100 described herein.

The computer readable media 204 may include volatile media, nonvolatilemedia, removable media, non-removable media, and/or another availablemedia that can be accessed by the CSP computing system 110. By way ofexample and not limitation, computer readable media 204 comprisescomputer storage media and communication media. Computer storage mediaincludes non-transient storage memory/media, volatile media, nonvolatilemedia, removable media, and/or non-removable media implemented in amethod or technology for storage of information, such ascomputer/machine readable/executable instructions, data structures,program modules, and/or other data. Communication media may embodycomputer readable instructions, data structures, program modules, orother data and include an information delivery media or system.

A classification module 206 determines, for each network element 104,how packets are to be classified by each network element 104 forimplementing an assigned QoS for each communication path. Theclassification module 206 may also generate instructions to be used byeach network element 104 for inspecting packets for applying a QoS inaccordance with a protocol (e.g., DSCP, IP Precedence, 802.1Q, CS, etc.)of each packet. In one embodiment, the classification module 206 mayalso provide information to be used by each network element 104 fordetecting malicious packets, such as those associated with denial ofservice (DoS) attacks, or worm viruses.

A packet marking module 208 determines, for each network element 104,how each incoming packet is to be interpreted for each communicationpath 106. For example, the packet marking module 208 may provideinstructions to a network element 104 that packets marked with aparticular tag indicating a ‘best effort’ QoS level should be routedthrough a certain queue 128 of that network element 104. As anotherexample, the packet marking module 208 may also provide instructions forthat network element 104 to re-mark (e.g., append a different tag) tocertain packets so that the downstream network element 104 in thatcommunication path may properly interpret the QoS and route the packetto its appropriate queue 128.

A policing module 210 develops one or more policing algorithms to beused by certain network elements 104 for ensuring that policiesassociated with the communication paths are adhered to. For example, thepolicing module 210 may determine for a particular communication path, afirst network element 104 along the communication path that isconfigured to police packets to ensure that a maximum throughput ratefor that communication path is not exceeded. Additionally, the policingmodule 210 may determine what actions are to be taken by each networkelement 104 in the event that the maximum throughput rate is exceeded,such as dropping additional packets that would cause the throughput rateto be exceeded, re-assigning the communication path to a lower priority,and/or buffering the packets until the throughput rate is no longerexceeded. As another example, the policing module 210 may instruct onenetwork element 104, a subset of all the network elements 104, or allnetwork elements 104 handling the communication path to police thecommunication path to ensure that the maximum throughput rate is notexceeded.

A communication path shaping module 212 develops certain algorithms tobe used by each network element 104 to smooth out occasional periods oftraffic congestion by delaying (e.g., buffering) packets for a period oftime until the congestion is relieved. The shaping can be accomplishedwith singular and/or hierarchal policy maps that are each associatedwith the different QoS levels. For example, the communication pathshaping module 212 may monitor the throughput of each communication pathand when the throughput exceeds a certain specified level, commencebuffering of the communication path until the throughput level goesbelow that level.

A scheduling and queuing module 214 develops certain algorithms to beused by each network element 104 to manage how incoming packets arescheduled for processing by each respective network element 104. Bothscheduling and queuing can be done by class-based policies as well asvia legacy algorithms such as class-based weighted fair queuing andlow-latency queuing. The scheduling and queuing module 214 may generatea mapping algorithm that maps QoS levels provided by the CSP to thoseprovided by each network element 104. For example, the scheduling andqueuing module 214 may generate a mapping algorithm for a particularnetwork element having queues conforming the DSCP queue mappings suchthat a ‘best effort’ QoS level is mapped to ‘queue 14’, while a‘premium’ QoS level is mapped to ‘ queue 37’ of the DSCP queue mappingsof the network element. Additionally, the scheduling and queuing module214 may dynamically map QoS levels to queues associated with eachnetwork element according to measured network parameters or otherfactors of the communication network that may change over time.

It should be appreciated that the modules described herein are providedonly as an example of a computing device that may execute the rulesengine 112 according to the teachings of the present invention, and thatother computing devices may have the same modules, different modules,additional modules, or fewer modules than those described herein. Forexample, one or more modules as described in FIG. 2 may be combined intoa single module. As another example, certain modules described hereinmay be encoded and executed on other computing devices, such as thenetwork element used by the user.

FIG. 3 illustrates an example process that may be performed by the rulesengine 112 according to the teachings of the present disclosure.

In step 302, the rules engine 112 receives information about acommunication path to be established for a customer communication device108 a, 108 b. The routing information includes information about whichnetwork elements 104 are to handle the communication path and any termsof service to be associated with the communication path. For example,the terms of service associated with the communication path may includea specified QoS level and/or a maximum throughput rate negotiated forthat communication path.

In step 304, the rules engine 112 identifies those network elements 104in the communication network 102 that are assigned to handle thecommunication path. Next, for each network element 104 that is to handlethe communication path, the rules engine 112 determines one of multiplequeues 128 in its respective network element 104 that provides thecommunication path at the specified QoS level in step 306. In oneembodiment, the rules engine 112 may modify (e.g., re-mark) the tagincluded in one or more packets according to a downstream networkelement 104 along the communication path. For example, a particularcommunication path having a ‘best effort’ QoS level may be processed ata certain queue level in one network element 104 while being processedin a different queue level in its downstream network element 104. Therules engine 112 therefore may input this information in theconfiguration file 126 sent to the network element 104 such that duringoperation, the network element 104 may modify the tag such that thedownstream network element 104 may also process the packet at the ‘besteffort’ QoS level.

In step 308, the rules engine 112 generates one or more shaping,scheduling, and/or queuing mechanisms for each network element 104 thatmay be used for managing how packets are queued through each networkelement 104. For example, the rules engine 112 may generate a shapingmechanism for one or more network elements 104 for managing how loadsharing for each network element 104 is to be administered underdiffering load scenarios. As another example, the rules engine 112 maygenerate a singular and/or a hierarchal policy map that may be used byat least one network element 104 for buffering of each of its queuessuch that packets of multiple communication paths may be efficientlyrouted through its respective network element 104.

In step 310, the rules engine 112 generates one or more policyenforcement rules for each network element 104. For example, the rulesengine 112 determines those network elements 104 configured to regulatea maximum throughput rate of the communication path, and generates apolicy enforcement rule for at least one network element 104 to be usedfor ensuring that the throughput rate of that communication path doesnot exceed the maximum throughput rate.

In step 312, the rules engine 112 distributes the determined queueinformation, shaping mechanisms, scheduling mechanisms, queuingmechanisms, and policy enforcement rules to each network element 104that is configured to handle that communication path. For example, therules engine 112 generates a configuration file for each network element104 including the queue information, shaping mechanisms, schedulingmechanisms, queuing mechanisms, and policy enforcement rules andtransmits the configuration file 126 to its respective network element104 such that its application 124 may configure its operation accordingto the parameters determined by the rules engine 112. The configurationfile 126 may be transmitted to the network elements 104 in any suitablemanner. For example, the rules engine 112 may automatically transmit(e.g., push) the configuration file 126 to the network elements 104 whenthe configuration filed 126 is generated. As another example, the rulesengine 126 may store the configuration file 126 for each network element104 in the data source 110 such that the configuration file 126 for thenetwork elements 104 may be manually viewed and transmitted to theirrespective network elements 104 by a user. In this manner, theautomatically generated configuration file 126 may be manually modifiedby the user to include any customized settings prior to transmitting theconfiguration files 126 to the network elements 104.

When the communication path is established, each network element 104will decipher each packet received from either the customercommunication device 108 a, 108 b or an upstream network element 104 andqueue that packet according to the information stored in theconfiguration file 126.

The process described above continues throughout operation of thequality of service management system 100 for establishing othercommunication paths in the communication network 102. However, when useof the quality of service management system 100 is no longer needed ordesired the process ends.

It should be appreciated that the process described herein is providedonly as an example and that the quality of service management system 100may execute additional steps, fewer steps, or differing steps than thosedescribed herein. For example, the steps 302 through 312 may be executedin any suitable order; that is, the steps as described in FIG. 3 are notlimited to execution in any particular sequence. As another example,either of the steps 302 through 312 described herein may be executed bythe CPS computing system 110 or may alternatively be performed byanother computing system without departing from the spirit or scope ofthe present disclosure.

The description above includes example systems, methods, techniques,instruction sequences, and/or computer program products that embodytechniques of the present disclosure. However, it is understood that thedescribed disclosure may be practiced without these specific details.

In the present disclosure, the methods disclosed may be implemented assets of instructions or software readable by a device. Further, it isunderstood that the specific order or hierarchy of steps in the methodsdisclosed are instances of example approaches. Based upon designpreferences, it is understood that the specific order or hierarchy ofsteps in the method can be rearranged while remaining within thedisclosed subject matter. The accompanying method claims presentelements of the various steps in a sample order, and are not necessarilymeant to be limited to the specific order or hierarchy presented.

The described disclosure may be provided as a computer program product,or software, that may include a machine-readable medium having storedthereon instructions, which may be used to program a computer system (orother electronic devices) to perform a process according to the presentdisclosure. A machine-readable medium includes any mechanism for storinginformation in a form (e.g., software, processing application) readableby a machine (e.g., a computer). The machine-readable medium mayinclude, but is not limited to, magnetic storage medium (e.g., floppydiskette), optical storage medium (e.g., CD-ROM); magneto-opticalstorage medium, read only memory (ROM); random access memory (RAM);erasable programmable memory (e.g., EPROM and EEPROM); flash memory; orother types of medium suitable for storing electronic instructions.

For example, FIG. 4 is a block diagram illustrating an example of a hostor computer system 400 which may be used in implementing the embodimentsof the present disclosure. The computer system (system) includes one ormore processors 402-406. Processors 402-406 may include one or moreinternal levels of cache (not shown) and a bus controller or businterface unit to direct interaction with the processor bus 412.Processor bus 412, also known as the host bus or the front side bus, maybe used to couple the processors 402-406 with the system interface 414.System interface 414 may be connected to the processor bus 412 tointerface other components of the system 400 with the processor bus 412.For example, system interface 414 may include a memory controller 413for interfacing a main memory 416 with the processor bus 412. The mainmemory 416 typically includes one or more memory cards and a controlcircuit (not shown). System interface 414 may also include aninput/output (I/O) interface 420 to interface one or more I/O bridges orI/O devices with the processor bus 412. One or more I/O controllersand/or I/O devices may be connected with the I/O bus 426, such as I/Ocontroller 428 and I/O device 430, as illustrated.

I/O device 430 may also include an input device (not shown), such as analphanumeric input device, including alphanumeric and other keys forcommunicating information and/or command selections to the processors402-406. Another type of user input device includes cursor control, suchas a mouse, a trackball, or cursor direction keys for communicatingdirection information and command selections to the processors 402-406and for controlling cursor movement on the display device.

System 400 may include a dynamic storage device, referred to as mainmemory 416, or a random access memory (RAM) or other computer-readabledevices coupled to the processor bus 412 for storing information andinstructions to be executed by the processors 402-406. Main memory 416also may be used for storing temporary variables or other intermediateinformation during execution of instructions by the processors 402-406.System 400 may include a read only memory (ROM) and/or other staticstorage device coupled to the processor bus 412 for storing staticinformation and instructions for the processors 402-406. The system setforth in FIG. 4 is but one possible example of a computer system thatmay employ or be configured in accordance with aspects of the presentdisclosure.

According to one embodiment, the above techniques may be performed bycomputer system 400 in response to processor 404 executing one or moresequences of one or more instructions contained in main memory 416.These instructions may be read into main memory 416 from anothermachine-readable medium, such as a storage device. Execution of thesequences of instructions contained in main memory 416 may causeprocessors 402-406 to perform the process steps described herein. Inalternative embodiments, circuitry may be used in place of or incombination with the software instructions. Thus, embodiments of thepresent disclosure may include both hardware and software components.

A computer readable medium includes any mechanism for storing ortransmitting information in a form (e.g., software, processingapplication) readable by a machine (e.g., a computer). Such media maytake the form of, but is not limited to, non-volatile media and volatilemedia. Non-volatile media includes optical or magnetic disks. Volatilemedia includes dynamic memory, such as main memory 416. Common forms ofmachine-readable medium may include, but is not limited to, magneticstorage medium (e.g., floppy diskette); optical storage medium (e.g.,CD-ROM); magneto-optical storage medium; read only memory (ROM); randomaccess memory (RAM); erasable programmable memory (e.g., EPROM andEEPROM); flash memory; or other types of medium suitable for storingelectronic instructions.

Embodiments of the present disclosure include various operations orsteps, which are described in this specification. The steps may beperformed by hardware components or may be embodied inmachine-executable instructions, which may be used to cause ageneral-purpose or special-purpose processor programmed with theinstructions to perform the steps. Alternatively, the steps may beperformed by a combination of hardware, software and/or firmware.

It is believed that the present disclosure and many of its attendantadvantages will be understood by the foregoing description, and it willbe apparent that various changes may be made in the form, construction,and arrangement of the components without departing from the disclosedsubject matter or without sacrificing all of its material advantages.The form described is merely explanatory, and it is the intention of thefollowing claims to encompass and include such changes.

While the present disclosure has been described with reference tovarious embodiments, it will be understood that these embodiments areillustrative and that the scope of the disclosure is not limited tothem. Many variations, modifications, additions, and improvements arepossible. More generally, embodiments in accordance with the presentdisclosure have been described in the context of particularimplementations. Functionality may be separated or combined in blocksdifferently in various embodiments of the disclosure or described withdifferent terminology. These and other variations, modifications,additions, and improvements may fall within the scope of the disclosureas defined in the claims that follow.

What is claimed is:
 1. A quality of service management system for acommunication network, the system comprising: a computing systemcomprising at least one memory for storing a rules engine that isexecuted by at least one processor to: receive information associatedwith a communication path to be provided for a customer communicationdevice, the communication path having an associated quality of service(QoS); identify one or more network elements to provide thecommunication path, each network element comprising a plurality ofqueues to provide varying QoS levels relative to one another; andwherein the rules engine is further executed to, for each networkelement: generate downstream queue information for the network element,the downstream queue information comprising one queue of another networkelement that is downstream along the communication path; append thedownstream queue information to each communication packet using a tag;and transmit each communication packet and its appended tag to thedownstream network element; and for each of the network elements:identify at least one queue that is configured to provide thecommunication path at the QoS; and transmit queue information associatedwith the determined queue to the network element, the network elementconveying the communication path through the identified queue.
 2. Thesystem of claim 1, wherein the memory stores QoS mapping information foreach of the network elements, the rules engine further executed todetermine the queue according to the QoS mapping information associatedwith each respective network element.
 3. The system of claim 1, whereineach packet transmitted through the communication path includes a tagindicating the QoS.
 4. The system of claim 3, wherein the tag isgenerated by and appended to the packet by at least one of thecommunication devices.
 5. The system of claim 3, wherein the tag isgenerated by and appended to the packet by an ingress network element inthe communication path.
 6. The system of claim 1, wherein the rulesengine is further executed to: determine which of the one or morenetwork elements are configured to enforce a policy associated with theQoS; generate a rule to be associated with the policy; and transmit therule to at least one of the one or more network elements that areconfigured to enforce the policy.
 7. The system of claim 6, wherein thepolicy comprises a maximum throughput rate of the communication path. 8.The system of claim 1, wherein the rules engine is further executed to,for each network element: schedule a priority level for at least twoqueues of the network element; and transmit the scheduled priority ofthe at least two queues to the network element.
 9. A method comprising:receiving, using at least one processor executing instructions stored inat least one memory, information associated with a communication path tobe provided for a customer communication device, the communication pathhaving a quality of service (QoS); identifying, using the processor, oneor more network elements to provide the communication path, each networkelement comprising a plurality of queues to provide varying QoSsrelative to one another; and for each network element: generatingdownstream queue information for the network element, the downstreamqueue information comprising one queue of another network element thatis downstream along the communication path; appending the downstreamqueue information to each communication packet using a tag; andtransmitting each communication packet and its appended tag to thedownstream network element; and for each of the network elements:identifying, using the processor, at least one queue that is configuredto provide the communication path at the QoS; and transmitting, usingthe processor, queue information associated with the determined queue tothe network element, the network element conveying the communicationpath through the determined queue.
 10. The method of claim 9, furthercomprising determining the queue according to QoS mapping informationassociated with each respective network element.
 11. The method of claim9, further comprising appending a tag to each packet transmitted throughthe communication path, the tag indicating the QoS of the communicationpath.
 12. The method of claim 11, further comprising generating andappending the tag by at least one of the communication devices.
 13. Themethod of claim 11, further comprising generating and appending the tagby an ingress network element in the communication path.
 14. The methodof claim 9, further comprising: determining which of the one or morenetwork elements are configured to enforce a policy associated with theQoS; generating a rule to be associated with the policy; andtransmitting the rule to at least one of the one or more networkelements that are configured to enforce the policy.
 15. The method ofclaim 9, wherein the rules engine is further executed to, for eachnetwork element: schedule a priority level for at least two queues ofthe network element; and transmit the scheduled priority of the at leasttwo queues to its respective network element.
 16. Code implemented on anon-transitory, computer-readable medium, when executed by at least oneprocessor, operable to perform at least the following: receiveinformation associated with a communication path to be provided for acustomer communication device, the communication path having a qualityof service (QoS); identify one or more network elements assigned toprovide the communication path, each network element comprising aplurality of queues to provide varying QoSs relative to one another; andfurther executed to, for each network element: generate downstream queueinformation for the network element, the downstream queue informationcomprising one queue of another network element that is downstream alongthe communication path; append the downstream queue information to eachcommunication packet using a tag; and transmit each communication packetand its appended tag to the downstream network element; and for each ofthe network elements: identify at least one queue that is configured toprovide the communication path at the assigned quality of service; andtransmit, using the processor, queue information associated with thedetermined queue to the network element, the network element conveyingthe communication path through the determined queue.
 17. The code ofclaim 16, further executed to append a tag to each packet transmittedthrough the communication path, the tag indicating the QoS of thecommunication path.